import { _decorator, Component, Node, Vec3 } from 'cc';
const { ccclass, property } = _decorator;

/**
 * 实体基类
 * 
 * 功能：
 * 1. 定义游戏实体的基本属性
 * 2. 管理实体的生命周期
 * 3. 处理实体的碰撞检测
 * 4. 提供通用的实体行为
 * 
 * 特点：
 * 1. 属性系统
 * 2. 状态管理
 * 3. 事件分发
 * 4. 碰撞响应
 */
@ccclass('BaseEntity')
export class BaseEntity extends Component {
    @property
    protected hp: number = 100;

    @property
    protected moveSpeed: number = 5;

    @property
    protected evolutionPoints: number = 0;

    protected position: Vec3 = new Vec3();

    start() {
        this.init();
    }

    protected init() {
        // 初始化实体属性
    }

    public move(direction: Vec3) {
        // 基础移动实现
    }

    public takeDamage(damage: number) {
        this.hp -= damage;
        if (this.hp <= 0) {
            this.die();
        }
    }

    protected die() {
        // 处理死亡逻辑
    }
} 